﻿using System;

namespace HslCommunication.Algorithms.ConnectPool
{
	/// <summary>
	/// 连接池的接口，连接池的管理对象必须实现此接口
	/// </summary>
	/// <remarks>为了使用完整的连接池功能，需要先实现本接口，然后配合<see cref="T:HslCommunication.Algorithms.ConnectPool.ConnectPool`1" />来使用</remarks>
	/// <example>
	/// 下面举例实现一个modbus的连接池对象
	/// <code lang="cs" source="HslCommunication_Net45.Test\Documentation\Samples\Algorithms\ConnectPool.cs" region="IConnector Example" title="IConnector示例" />
	/// </example>
	// Token: 0x020001A4 RID: 420
	public interface IConnector
	{
		/// <summary>
		/// 指示当前的连接是否在使用用
		/// </summary>
		// Token: 0x170006C8 RID: 1736
		// (get) Token: 0x06002138 RID: 8504
		// (set) Token: 0x06002139 RID: 8505
		bool IsConnectUsing { get; set; }

		/// <summary>
		/// 唯一的GUID码
		/// </summary>
		// Token: 0x170006C9 RID: 1737
		// (get) Token: 0x0600213A RID: 8506
		// (set) Token: 0x0600213B RID: 8507
		string GuidToken { get; set; }

		/// <summary>
		/// 最新一次使用的时间
		/// </summary>
		// Token: 0x170006CA RID: 1738
		// (get) Token: 0x0600213C RID: 8508
		// (set) Token: 0x0600213D RID: 8509
		DateTime LastUseTime { get; set; }

		/// <summary>
		/// 打开连接
		/// </summary>
		// Token: 0x0600213E RID: 8510
		void Open();

		/// <summary>
		/// 关闭并释放
		/// </summary>
		// Token: 0x0600213F RID: 8511
		void Close();
	}
}
